#pragma once
#include "HalconCpp.h"
#include "HDevEngineCpp.h"
#include <QImage>

using namespace HalconCpp;
using namespace HDevEngineCpp;

#include "opencv2/opencv.hpp"
using namespace  cv;

extern Mat himageToMat(HObject& imgHalcon);

extern HObject matToHImage( Mat& imgMat);

extern QImage hobjectToQImage(HObject& imgHalcon);


extern Mat drawRegion( Mat mat_image,HObject region, Scalar color);
extern Mat drawRegionFill( Mat mat_image, HObject region, Scalar color);


// Procedure declarations
extern void SSM (HObject ho_image, HObject *ho_region_error, HTuple hv_row1, HTuple hv_column1,
    HTuple hv_row2, HTuple hv_column2, HTuple hv_rgb_hsv, HTuple hv_channel1low,
    HTuple hv_channel1high, HTuple hv_channel2_low, HTuple hv_channel2_high, HTuple hv_channel3_low,
    HTuple hv_channel3_high, HTuple hv_no_yes_mask, HTuple hv_mask_character, HTuple *hv_ret,
    HTuple *hv_size_error);
